Life is a small application which displays a simulation of cells which live & die by simple rules. The original Life concept was created by John Conway and popularized in Scientific American’s Mathematical Recreations column years ago.
Although most people will probably just run this program to watch the pretty patterns you can change the rules that the program uses, create patterns of your own by drawing cells onto the screen, and control other aspects of the simulation.
The Rules of Life
In the standard Game of Life there are three rules:
1. If a cell has more than three neighbors it dies.
2. If a cell has less than two neighbors it dies.
3. If a location has exactly three neighbors and no cell, a new cell is born there.
These rules can be set in the Edit Rules dialog.
3-4 Life and Cosmic Foam use different rules which produce patterns that are usually less interesting.
Editing cells
Shown: Blinker, Diagonal Glider, Horizontal Glider, and the “r” Seed.
You can create or erase cells by clicking on the screen and “drawing them”.
Hold down the shift key to constrain movement to one axis.
Hold down the option key and drag to create a selection.
Drag to move the selection around or option-drag it to copy it to another location.
The arrow keys also move selections.
Click outside a selection to cancel it.
If there is a selection on the screen, choosing Clear or pressing the delete key will clear just the cells in the selection.
Selection areas can only be created while the simulation is stopped.
New cells are drawn in a different color than older cells (in the picture above the new cells are green).
The Menus
Edit
Undo Swaps the current and previous generations
Clear Clears the current selection or the whole screen
Flip Horizontal Flips the contents of a selection horizontally
Flip Vertical Flips the contents of a selection vertically
Life
Go Sets things into motion
Step Steps forward one generation
Stop Stops the simulation
Random Puts new random cells in the dish
Autoregenerate Calls Random when a static state is detected
Show Every Generation Draws every generation calculated
Inverse Draws cells on a black background
Change Rules Brings up the Edit Rules dialog
Notes on the Implementation
Life needs a lot of memory to draw things quickly. On large monitors or high screen depths you may be limited in how large you can grow the window unless you give the program more memory.
The simulation runs faster when the window is sized smaller, when the screen depth is less, and when running on PowerMacs.
If you turn off Show Every Generation then Life will calculate as many generations as it can in 1/60th of a second before drawing the result. This can make the simulation dramatically faster at the expense of making it look a little odd as it jumps ahead several generations at a time.
The window wraps around, top-to-bottom and right-to-left.
The program imports and exports a special text format called “.LIF”. This format is used by a number of other life programs. However only the smaller .LIF shapes can completely fit into Life’s windows.
Life is fat binary: native code for both 68020+ and PowerPC. It requires System 7.1 or later but is happiest with MacOS 8. It will use the Appearance Manager and Navigation Manager if available.
______________________________
PS: This program was inspired by Bill Atkinson's original Life program which blew me away when I first saw it running on a 128K Mac fourteen years ago.
PPS: Many of the saved patterns are from Andrew Trevorrow's excellent LifeLab program.
Life is copyrighted by me but is free in the public domain. Please include this document if you distribute it.